Programming Parallel Applications in

نویسنده

  • Charles E. Leiserson
چکیده

Cilk (pronounced \silk") is a C-based language for multithreaded parallel programming. Cilk makes it easy to program irregular parallel applications, especially as compared with data-parallel or message-passing programming systems. A Cilk programmer need not worry about protocols and load balancing, which are handled by Cilk's provably eecient runtime system. Many regular and irregular Cilk applications run nearly as fast on one processor as comparable C programs, and they scale well to many processors. 1 Background and goals Cilk is an algorithmic multithreaded language. The philosophy behind Cilk is that a programmer should concentrate on structuring his program to expose parallelism and exploit locality, leaving the runtime system with the responsibility of scheduling the computation to run eeciently on a given platform. Cilk's runtime system takes care of details like load balancing and communication protocols. Unlike other multithreaded languages, however, Cilk is algorithmic in that the runtime system's scheduler guarantees provably eecient and predictable performance. Cilk grew out of theoretical work 1, 5, 6] on the scheduling of multithreaded computations. The basis of Cilk is a provably good scheduling algorithm that has been the cornerstone of Cilk system development. Cilk's provably good scheduler engendered a performance model that accurately predicts the eeciency of a Cilk program using two simple parameters: work and critical-path length 1, 4, 6]. More recent research has included page faults as a measure of locality 2, 3, 12]. The rst implementation of Cilk was a direct descendent of PCM/Threaded-C 10, 12], a C-based package which provided continuation-passing-style threads on Thinking Machines Corporation's Connection Machine Model CM-5 Supercomputer 13] and which used \work-stealing" as a scheduling policy to improve the load balance and locality of the computation. With the addition of a provably good scheduler and the incorporation of many other parallel programming features, the system was rechristened \Cilk-1." Notable among the platforms that supported Cilk-1 was an adaptively parallel and fault-tolerant network-of-workstations implementation, called Cilk-NOW 1, 7]. The next release, Cilk-2, featured full type-checking, supported all of ANSI C in its C-language subset, and ooered call-return semantics for writing multithreaded procedures 14]. Instead of the C

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Cloud Computing Technology Algorithms Capabilities in Managing and Processing Big Data in Business Organizations: MapReduce, Hadoop, Parallel Programming

The objective of this study is to verify the importance of the capabilities of cloud computing services in managing and analyzing big data in business organizations because the rapid development in the use of information technology in general and network technology in particular, has led to the trend of many organizations to make their applications available for use via electronic platforms hos...

متن کامل

Pareto-based Multi-criteria Evolutionary Algorithm for Parallel Machines Scheduling Problem with Sequence-dependent Setup Times

This paper addresses an unrelated multi-machine scheduling problem with sequence-dependent setup time, release date and processing set restriction to minimize the sum of weighted earliness/tardiness penalties and the sum of completion times, which is known to be NP-hard. A Mixed Integer Programming (MIP) model is proposed to formulate the considered multi-criteria problem. Also, to solve the mo...

متن کامل

A fuzzy mixed-integer goal programming model for a parallel machine scheduling problem with sequence-dependent setup times and release dates

This paper presents a new mixed-integer goal programming (MIGP) model for a parallel machine scheduling problem with sequence-dependent setup times and release dates. Two objectives are considered in the model to minimize the total weighted flow time and the total weighted tardiness simultaneously. Due to the com-plexity of the above model and uncertainty involved in real-world scheduling probl...

متن کامل

Implementation of the direction of arrival estimation algorithms by means of GPU-parallel processing in the Kuda environment (Research Article)

Direction-of-arrival (DOA) estimation of audio signals is critical in different areas, including electronic war, sonar, etc. The beamforming methods like Minimum Variance Distortionless Response (MVDR), Delay-and-Sum (DAS), and subspace-based Multiple Signal Classification (MUSIC) are the most known DOA estimation techniques. The mentioned methods have high computational complexity. Hence using...

متن کامل

Parleda: a Library for Parallel Processing in Computational Geometry Applications

ParLeda is a software library that provides the basic primitives needed for parallel implementation of computational geometry applications. It can also be used in implementing a parallel application that uses geometric data structures. The parallel model that we use is based on a new heterogeneous parallel model named HBSP, which is based on BSP and is introduced here. ParLeda uses two main lib...

متن کامل

Modern Computational Applications of Dynamic Programming

Computational dynamic programming, while of some use for situations typically encountered in industrial and systems engineering, has proved to be of much greater significance in many areas of computer science. We review some of these applications here.

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1997